背景在比较同一个数据源,是RTMP播放延迟低还是RTSP延迟低之前,我们先看看RTMP和RTSP的区别,我们知道,RTMP(Real-Time Messaging Protocol)和RTSP(Real RTMP以二进制形式传输数据,具有低延迟和高效传输的特点。RTSP:RTSP则是一种控制流媒体会话的协议,它不直接传输媒体数据本身,而是负责描述流媒体会话,并指示客户端如何获取流媒体数据。 应用范围RTMP:RTMP因其低延迟和高效传输的特点,广泛应用于需要高性能实时流媒体传输的场景,如直播、视频聊天等。 ,用我们的RTMP推送、轻量级RTSP服务、RTMP|RTSP播放器,延迟基本上相差无几,可见,配好的推拉流服务模块,尤其关键。 单就延迟来看,如果好的RTMP或RTSP播放,二者差异不大,主要是看实际场景。以上是大概的比较,感兴趣的开发者,可以单独跟我沟通探讨。
技术背景 实际上,我们在2015年做Android平台RTSP、RTMP播放模块的时候,第一版就支持了多实例播放,因为SDK设计比较灵活,做个简单的player实例封装即可实现多实例播放(Android 1 : 0); //设置RTSP超时时间 int rtsp_timeout = 10; lib_player_.SmartPlayerSetRTSPTimeout(handle, rtsp_timeout ); //设置RTSP TCP/UDP模式自动切换 int is_auto_switch_tcp_udp = 1; lib_player_.SmartPlayerSetRTSPAutoSwitchTcpUdp 、RTMP播放器海康实现播放缓冲设置、软硬解码设置、实时快照、实时音量调节、实时解码后数据回调等。 毫秒级延迟,完全满足对延迟、稳定性要求苛刻的场景下。感兴趣的开发者,可以单独和我沟通。
好多开发者在QT环境下实现RTMP或RTSP播放时,首先考虑到的是集成VLC,集成后,却发现VLC在延迟、断网重连、稳定性等各个方面不尽人意,无法满足上线环境需求。 本文以调用大牛直播SDK(官方)的Windows平台播放端SDK为例,介绍下如何在QT下实现低延迟的RTMP|RTSP播放器,废话不多说,先上图: QTPlayer.png 大牛直播SDK有MFC的demo OpenPlayerHandle(url, is_rtsp_tcp_mode, is_mute)) return false; player_api_->SetBuffer(player_handle play->OnWindowSize(widgets.at(i)->width(), widgets.at(i)->height()); } } } 以上是QT环境下集成个低延迟的 RTMP、RTSP播放的基本流程,感兴趣的开发者可酌情参考。
实现RTSP摄像头数据转RTMP推送到服务器,可以用第三方库或者工具实现,总体设计架构如下:图片一个好的转发模块,首先要低延迟! 其次足够稳定、灵活、有状态反馈机制、资源占用低,跨平台,最好以接口形式提供,便于第三方系统集成,整体功能设计如下:1. 拉流:通过RTSP直播播放SDK的数据回调接口,拿到音视频数据;2. 转推:通过RTMP直播推送SDK的编码后数据输入接口,把回调上来的数据,传给RTMP直播推送模块,实现RTSP数据流到RTMP服务器的转发;3. 是摄像头的RTSP流地址,rtmp://[服务器地址]/[直播频道]是目标服务器的RTMP流地址。 需要确保系统具有足够的处理能力和带宽,以避免延迟或丢帧等问题。
概述与优势1.1 SDK功能特性1.1.1 支持协议与格式 支持RTMP、RTSP协议,兼容H.265、H.264视频格式及AAC、PCMA等音频格式,满足多样化播放需求。 提供RTSP TCP/UDP模式设置及自动切换功能,适应不同网络环境,确保播放稳定性。 1.1.2 性能优化特性 内置低延迟模式,可将延迟控制在毫秒级别,满足实时性要求高的场景。 低延迟播放技术实现3.1 网络优化策略3.1.1 缓冲时间设置 将缓冲时间设置在几十毫秒到几百毫秒之间,减少数据缓冲带来的延迟,同时保证播放稳定性。 4.2 低延迟关键参数配置4.2.1 网络协议优化 RTSP模式选择:默认使用UDP(NT_SP_SetRTSPTcpMode设为0)以减少握手延迟,若网络不稳定则开启TCP/UDP自动切换(NT_SP_SetRtspAutoSwitchTcpUdp RTSP/RTMP播放器,适用于VR、安防、直播等高实时性场景。
如果需要浏览器场景下有更好的兼容性,对于RTSP流来说,好多公司通常的做法是把RTSP转RTMP,然后分发到RTMP服务器,然后服务器转http-flv出来,浏览器直接播放http-flv流,或者直接播放 本文基于大牛直播SDK https://github.com/daniulive/SmarterStreaming 现有RTSP、RTMP播放接口的基础上,二次封装,扩展了ocx控件,用于IE浏览器下的低延迟 RTMP或RTSP播放,支持RTMP/RTSP H.265(hevc)播放。 ULONG NT_SetLowLatencyMode(LONG mode); 设置是否低延迟模式播放; 13. OpenPlayer(); } var obj = document.getElementById("SmartPlayerActiveX"); //设置是否启用低延迟模式
在Unity3D平台上实现全景实时RTMP或RTSP流渲染,可以通过以下方式:获取全景视频数据源:首先,需要拉取RTMP或RTSP流数据,解码后,把RGB或YUV数据,回调到unity,从而获取到全景视频流数据 技术实现图片本文以大牛直播SDK的RTMP推送端作为数据采集,获取全景窗体数据后,编码打包推送到RTMP服务,或启动个轻量级RTSP服务,对外提供个RTSP的拉流URL。 然后,播放端,拉取RTSP或RTMP的URL,把YUV或RGB数据回调上来,然后,再在Unity窗体绘制出来。 1 : 0); //设置是否启用低延迟模式 //设置旋转角度(设置0, 90, 180, 270度有效,其他值无效) int rotate_degrees = 0; 与此同时,Unity全景实时播放,需要有非常高的延迟要求和性能要求,特别是全景数据源,分辨率和码率都非常高,对解码效率和解码后的数据拷贝投递,提了更高的要求。
传统方式如使用摄像头采集、调用 ffmpeg 解码、使用 OpenCV 的 cv2.VideoCapture(),往往面临: ❌ 帧率不稳、延迟高; ❌ 不支持 RTSP/RTMP 等协议或兼容性差; 为此,我们采用 大牛直播SDK 提供的 “YUV / RGB 回调 + 零拷贝共享” 机制,实现从 RTSP/RTMP 拉流 → 原始帧获取 → 高效送入 Python 环境的完整闭环。 技术链路RTSP摄像头 → 大牛直播SDK拉流 → YOLOv5识别人形目标 → 置信度>0.8 → 调用报警接口(如 MQTT / HTTP) 技术亮点 视频延迟 < 200ms; 实时叠加识别框 案例三:远程巡检 + 图像标注上传(无人机/机器人)✅ 场景描述在电力巡线、园区安防、石油管道等场景中,部署无人机或机器人,搭载 RTMP 图传系统将现场图像实时推流,后台系统接收后进行 AI 分析与人工辅助标注 /本地流,低延迟、高稳定帧级回调层RGB/YUV 输出精准对接 Python/AI 模型,毫秒级响应图像分析层OpenCV + YOLO/Haar支持人脸识别、目标检测、行为分析等数据联动层HTTP/MQTT
在发布国产操作系统|Linux平台的RTMP|RTSP直播播放SDK之前,大牛直播SDK在Windows、Android、iOS平台已经有了非常成熟的技术积累,功能齐全、稳定性高、超低延迟、超低资源占用 、网络自动重连等,RTMP支持扩展H265播放, RTSP也支持H265播放。 Linux原生的RTSP、RTMP播放模块这里我们不做赘述,本文主要讲的是如何在Linux平台构建Unity下的RTSP和RTMP低延迟直播播放。 、RTSP播放模块,拉流解码延迟非常低,数据投递效率非常高,无图无真相:Linux平台,我们是回调的YUV的数据,也就是 NT_SP_E_VIDEO_FRAME_FROMAT_I420: 、RTSP直播播放器大概的实现参考,随着国产操作系统的推进,Linux下RTMP、RTSP高质量的播放器需求越来越大,Unity下,可以实现和Windows、Android等平台统一开发管理,非常方便。
背景我们看过了太多介绍RTSP、RTMP播放相关的技术资料,大多接口设计简约,延迟和扩展能力也受到一定的局限,好多开发者希望我们能从接口设计的角度,大概介绍下大牛直播SDK关于RTMP、RTSP播放器开发设计 ,本文以Windows平台RTMP、RTSP播放模块为例,大概介绍下常用的接口。 低延迟模式低延迟模式下,设置buffer time为0,延迟更低,适用于比如需要操控控制的超低延迟场景下。 ,这里就不再赘述,除Windows平台外,我们还同步开发了Linux、Android、iOS平台的RTSP、RTMP播放器,大多常规接口四个平台基本统一,延迟也都做到了毫秒级。 一个好的播放器,特别是要满足低延迟稳定的播放(毫秒级延迟),需要注意的点远不止如此,感兴趣的开发者,可以参考blog其他文章。
技术实现如何在VR头显实现RTMP或RTSP播放? VR头显播放RTMP或RTSP流数据,简单来说,通过jni层打通RTMP或RTSP流传输,解包并解码回调给Unity YUV或RGB数据,Unity场景下,绘制即可,本文以大牛直播SDK的Unity平台 RTMP、RTSP播放为例,介绍下具体技术实现:图片开始播放:public void Play() { if (is_running) { Debug.Log 1 : 0); //设置是否启用低延迟模式 NT_U3D_SetMute(player_handle_, is_mute_ ? 或RTSP,可实现毫秒级的延迟,可满足大多数有交互诉求的技术场景,此外,如果头显端支持硬解码的话,可以优先考虑硬解码。
在视频播放应用的开发中,如何有效地管理多个 RTSP|RTMP流实例是一个挑战。 尤其是在 Android 上开发高性能、低延迟的多实例 RTSP|RTMP 播放器时,涉及到资源管理、线程同步和回调事件处理等多个层面的考虑。 项目背景和需求本项目的目标是实现一个支持多个 RTSP|RTMP流播放的 Android 播放器,用户可以通过不同的界面组件(如按钮和 SurfaceView)控制多个 RTSP|RTMP播放流的启动、 播放器需要具备以下特点: 多实例管理:能够同时管理多个 RTSP|RTMP播放器实例,确保每个实例的生命周期独立。 低延迟播放:优化播放器的启动时间和播放延迟。 它包含多个 SurfaceView 和控制按钮,每个按钮控制一个 RTSP|RTMP播放流的播放和录制。它的关键任务是初始化播放器实例,处理按钮点击事件,以及更新 UI 显示。
随着VR类、游戏类场景的快速发展,开发者对Unity3d低延迟的直播需求量越来越大,前两年,大牛直播SDK发布了Windows平台、Android平台和iOS平台的Unity3d RTMP和RTSP的播放 本文以Android平台为例,我们的实现:基于大牛直播SDK现有非常成熟的native RTMP和RTSP播放模块,回调解码后的原始数据,传递给Unity3d,实现相应的绘制即可,对应demo,可以参考 url.StartsWith("rtmp://") && ! url.StartsWith("rtsp://")) { videoUrl = "rtmp://202.69.69.180:443/webcast/bshdlive-pc 1 : 0); //设置是否启用低延迟模式 NT_U3D_SetMute(player_handle_, is_mute_ ?
技术探讨自2017年我们发布跨平台的低延迟Unity下的RTSP|RTMP直播播放器后,Unity下的直播体验有了质的提升,特别是RTMP,从大家认知里面的几秒钟,直接缩减到100-300ms,满足了绝大多数场景下低延迟的技术诉求 今天就Unity下的RTSP|RTMP的低延迟播放,从以下几个维度,抛砖引玉,做个探讨: 选择合适的播放插件 Unity下的RTSP|RTMP低延迟播放,业内想到最多的是大牛直播SDK的SmartPlayer ,支持 RTMP 和 RTSP 直播流播放,在资源占用、延迟等方面表现较好。 tcp-udp模式设置、rtsp超时时间设置、低延迟模式设置等)。 流,资源占用如下:总结Windows平台如果对延迟和资源占有等,要求非常高,可以选择合适的低延迟RTSP或RTMP播放插件、优化播放参数设置、优化网络环境、优化代码和渲染流程。
数据链路割裂,格式不统一 视频源设备繁多,输出格式五花八门(H.264/H.265、RTSP、RTMP、本地MP4等); 多数AI模型仅支持图片/YUV/RGB格式输入,需开发者手动完成繁琐的解码与转帧流程 为此,需要一个具备稳定解码、灵活回调、低延迟传输、多平台兼容等特性的“视频智能入口层”,而这正是大牛直播SDK × YOLO结合方案的切入点与价值所在。 而将这两者深度融合,必须具备两个核心能力: 一个具备高并发、低延迟、强适配性的视频输入通道; 一个能高效处理图像并输出语义结果的智能分析模块。 ✅ 多格式数据回调支持:直接输出 YUV、RGB、裸码流等 AI 模型友好的图像数据; ✅ 多协议支持:兼容 RTSP / RTMP / HTTP-FLV多种视频输入方式; ✅ 多平台高适配性:支持 下表为YOLO × 大牛直播SDK架构中各核心模块的能力矩阵:模块名称核心功能技术亮点对接方式 视频采集模块摄像头/无人机/工控终端实时采集支持轻量级RTSP、RTMP推流、本地录像通过地址拉流或本地输入
当外界把注意力集中在会走路、会做表情、皮肤逼真的“人形”外观时,真正决定机器人价值上限的,是它能否稳定感知、理性决策、可靠执行。 在机器人领域,答案也并不神秘:功能优先才是硬道理。要让机器人在工厂、医院、园区、矿区与城市街区“干活”,必须有一条低延迟、跨平台、可组装的感知—推理—执行链路。 这正是 大牛直播SDK(SmartMediaKit) 的定位:提供面向机器人与边缘智能的低延迟 RTSP 播放/服务、内网公网 RTMP 分发(含 Enhanced RTMP + HEVC/H.265) 视频链路的战略地位(SDK = 神经系统)大牛直播SDK 作为“神经系统”的角色在于: 专网低延迟(RTSP 播放/服务)满足近距离操控、现场监看、边缘推理,整体延迟100-200ms; 公网分发(RTMP /边缘的低延迟回传与本地监看; RTMP:公网侧旁路观看/教学/异地协作(Enhanced RTMP + HEVC); 轻量级RTSP服务/RTSPtoRTMP Relay:端侧或边缘转封装/转发,
它像“神经网络”一样,为人形机器人提供跨平台、低延迟的视频通道,让感知—决策—执行的闭环真正跑得起来。这条隐形赛道,也许才是决定未来胜负的“关键一役”。 这正是大牛直播SDK发挥作用的地方: 低延迟视频链路:RTSP/RTMP 播放器延迟控制在 100–200ms,确保“看到”与“做到”之间几乎无差。 医疗教育:远程手术或教学演示需要毫秒级响应,SDK 的 RTSP/RTMP 支持和跨平台渲染,保证画面与动作高度一致。 六、结语:得关节者得天下,得链路者赢未来未来十年,人形机器人行业的竞争逻辑,不仅仅是电机、材料、场景的显性战场,更包括低延迟、跨平台、可控的视频链路这一隐性赛道。 大牛直播SDK通过十余年的技术积累,已经形成覆盖推流、播放、转发、录像、RTSP/RTMP/GB28181 的完整模块矩阵。
一、风口之下的挑战:人形机器人为什么需要低延迟?近几个月,人形机器人赛道迎来资本与技术的双重关注。从产业巨头宣布量产计划,到专业赛事和行业大会的火热进行,市场对这一领域的预期正在不断攀升。 亚秒级传输延迟传统的RTMP、RTSP协议在普通应用中延迟往往达到1–3秒,这对于人形机器人控制、远程医疗等场景来说不可接受。 协议优化 + 硬件加速双重强化在低延迟的实现上,SDK通过减少RTMP/RTSP协议冗余、优化缓存策略,最大化缩短数据传输路径。 大牛直播SDK的技术支撑点 低延迟优化:通过自研 RTMP/RTSP 核心协议栈,支持毫秒级延迟,适用于工业远程控制、巡检等场景。 大牛直播SDK的角色在这一产业变革中,大牛直播SDK作为低延迟音视频传输的重要工具,提供了多协议支持(RTMP、RTSP、SRT)、跨平台兼容和自适应网络优化,这使其成为机器人厂商在构建实时交互系统时的优选方案
技术背景好多开发者,希望我们能探讨下Unity平台RTMP或RTSP直播流数据播放和录制相关的模块,实际上,这块流程我们已经聊过多次,无非就是通过原生的RTMP或者RTSP模块,先从协议层拉取到数据 ;Windows平台RTMP|RTSP直播播放模块;Linux平台RTMP直播推送模块(采集Unity窗体、Unity声音),也可扩展轻量级RTSP服务模块;Linux平台RTMP|RTSP直播播放模块 |RTSP直播播放模块;iOS平台RTMP|RTSP直播播放模块。 下图系Linux平台RTMP播放图,可以看到,延迟非常低。 1 : 0); //设置是否启用低延迟模式 NT_U3D_SetMute(player_handle_, is_mute_ ?
多协议支持:兼容 RTSP、RTMP、HTTP-FLV 等主流协议,能够适配现有 AI 平台和大模型服务。 人形机器人与具身智能:低延迟感知与远程操控的核心如果说大模型和算力让 AI 有了“大脑”,那么人形机器人就是它的“身体”。 在人形机器人赛道,视频链路的质量已经成为机器人落地的隐形门槛,而大牛直播SDK正是帮助厂商跨越这一门槛的关键技术之一。3. 多路转发与分发:内置 RTSP 转 RTMP、RTMP 转 GB28181 等模块,可以灵活对接 CDN、政企专网和应急指挥平台。 :实时感知、低延迟交互、跨平台可控。